n = 0:15;
t = 0:1 / 64:20;
N_1 = 8;
N_2 = 16;
N_3 = 32;
N_4 = 64;

x_1 = ones(1, 4);

x_2 = [1:4 4:-1:1];

x_3 = [4:-1:1 1:4];

x_4 = cos(pi / 4 .* n);

x_5 = sin(pi / 8 .* n);

x_6 = cos(pi * 8 * t) + cos(pi * 16 * t) + cos(pi * 20 * t);
xk=fft(x_1, N_1);
figure;
subplot(211); stem(0:N_1 - 1, [x_1 zeros(1, 4)], '.'); title('x1 的波形');
subplot(212); stem(0:N_1 - 1, abs(xk), '.'); title('x1 的 8 点离散幅度谱');

xk=fft(x_1, N_2);
figure;
subplot(211); stem(0:N_2 - 1, [x_1 zeros(1, 12)], '.'); title('x1 的波形');
subplot(212); stem(0:N_2 - 1, abs(xk), '.'); title('x1 的 16 点离散幅度谱');

xk=fft(x_2, N_1);
figure;
subplot(211); stem(0:N_1 - 1, x_2, '.'); title('x2 的波形');
subplot(212); stem(0:N_1 - 1, abs(xk), '.'); title('x2 的 8 点离散幅度谱');

xk=fft(x_2, N_2);
figure;
subplot(211); stem(0:N_2 - 1, [x_2 zeros(1, 8)], '.'); title('x2 的波形');
subplot(212); stem(0:N_2 - 1, abs(xk), '.'); title('x2 的 16 点离散幅度谱');

xk=fft(x_3, N_1);
figure;
subplot(211); stem(0:N_1 - 1, x_3, '.'); title('x3 的波形');
subplot(212); stem(0:N_1 - 1, abs(xk), '.'); title('x3 的 8 点离散幅度谱');

xk=fft(x_3, N_2);
figure;
subplot(211); stem(0:N_2 - 1, [x_3 zeros(1, 8)], '.'); title('x3 的波形');
subplot(212); stem(0:N_2 - 1, abs(xk), '.'); title('x3 的 16 点离散幅度谱');

xk=fft(x_4, N_1);
figure;
subplot(211); stem(0:N_1 - 1, x_4(1:8), '.'); title('x4 的波形');
subplot(212); stem(0:N_1 - 1, abs(xk), '.'); title('x4 的 8 点离散幅度谱');

xk=fft(x_4, N_2);
figure;
subplot(211); stem(0:N_2 - 1, x_4(1:16), '.'); title('x4 的波形');
subplot(212); stem(0:N_2 - 1, abs(xk), '.'); title('x4 的 16 点离散幅度谱');

xk=fft(x_6, N_2);
figure;
subplot(211); stem(0:N_2 - 1, x_6(1:16), '.'); title('x6 的波形');
subplot(212); stem(0:N_2 - 1, abs(xk), '.'); title('x6 的 16 点离散幅度谱');

xk=fft(x_6, N_3);
figure;
subplot(211); stem(0:N_3 - 1, x_6(1:32), '.'); title('x6 的波形');
subplot(212); stem(0:N_3 - 1, abs(xk), '.'); title('x6 的 32 点离散幅度谱');

xk=fft(x_6, N_4);
figure;
subplot(211); stem(0:N_4 - 1, x_6(1:64), '.'); title('x6 的波形');
subplot(212); stem(0:N_4 - 1, abs(xk), '.'); title('x6 的 64 点离散幅度谱');

[y, Fs] = audioread("motherland.wav");
y = y(8000:8199);
xk=fft(y, 512);
figure;
subplot(211); stem(0:200 - 1, y, '.'); title('音频数据');
subplot(212); stem(0:1 / 512 * 2: (512 - 1) / 512 * 2, abs(xk), '.');
xlabel("频率/(pi rad)")
title('音频数据 的 512 点离散幅度谱');

A = imread('lena.bmp'); % 读原图
figure(); 
imshow(A);
title('原图') 
fftI = fft2(A); % 二维离散傅里叶变换
A1 = abs(fftI); % 取模值
% 把幅度限定在[0,255]
B1=(A1-min(min(A1)))/(max(max(A1))-min(min(A1)))*255;
figure() 
imshow(B1); title('二维幅度谱图');
B= fftshift(B1); 
figure() 
imshow(B); title('移到中心位置的二维频谱图');
